package com.longcai.config.rabbitmq;

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.HashMap;
import java.util.Map;


/**
 * @author zhaojie
 * @Title: QueueConfig
 * @ProjectName clyj-electricity
 * @Description: TODO
 * @date 2019/3/2911:56
 */
@Configuration
public class QueueConfig {

    /**
     * 对列名称
     */
    public static final String QUEUE_NAME1 = "first-queue";
    public static final String QUEUE_NAME2 = "second-queue";
    public static final String QUEUE_NAME3 = "third-queue";

    /**
     * durable="true" 持久化消息队列 ， rabbitmq重启的时候不需要创建新的队列
     * auto-delete 表示消息队列没有在使用时将被自动删除 默认是false
     * exclusive  表示该消息队列是否只在当前connection生效,默认是false
     **/
    @Bean
    public Queue firstQueue() {
        return new Queue(QUEUE_NAME1, true, false, false);
    }

    @Bean
    public Queue secondQueue() {
        return new Queue(QUEUE_NAME2, true, false, false);
    }

    @Bean
    public Queue thirdQueue() {
        // 配置 自动删除
        Map<String, Object> arguments = new HashMap<>(10);
        //60秒自动删除
        arguments.put("x-message-ttl", 60000);
        return new Queue(QUEUE_NAME3, true, false, true, arguments);
    }
}